/**
 * 补全 16进制色值
 * @param { String } hex 16进制色值
 * @returns { String } 返回补全6位的16进制色值
 */
function expandHexColor(hex) {
    // 去除可能包含的 # 号
    hex = hex.replace("#", "");

    // 如果是 3 位形式，则进行补全
    if (hex.length === 3) {
        hex = hex.split("").map(function (char) {
            return char + char;
        }).join("");
    }

    // 返回补全后的 6 位形式
    return "#" + hex;
}
/**
 * 16进制色值转rgb格式
 * @param { String } color 16进制色值
 * @returns { String } rgb格式的色值
 */
function hexToRgb(color) {
    let hex = expandHexColor(color)
    // 去除可能包含的 # 号
    hex = hex.replace("#", "");

    // 提取 R、G、B 分量
    const r = parseInt(hex.substring(0, 2), 16);
    const g = parseInt(hex.substring(2, 4), 16);
    const b = parseInt(hex.substring(4, 6), 16);

    // 返回 RGB 颜色值
    return [r, g, b];
}
/**
 * 计算色值差
 * @param { String } rgb1 rgb格式的色值
 * @param { String } rgb2 rgb格式的色值
 * @returns 返回色差值
 */
function calculateColorDifference(rgb1, rgb2) {
    const color1 = hexToRgb(rgb1)
    const color2 = hexToRgb(rgb2)

    const r1 = color1[0];
    const g1 = color1[1];
    const b1 = color1[2];

    const r2 = color2[0];
    const g2 = color2[1];
    const b2 = color2[2];

    const difference = Math.sqrt(Math.pow(r2 - r1, 2) + Math.pow(g2 - g1, 2) + Math.pow(b2 - b1, 2));

    return difference;
}
